// import express from "express";
import express from "./express/index.js";

const app = express(); // const app = new Koa()

// express 内置路由系统  koa  router.get('/user',function(ctx){})

// 中间件一般是在路由处理前做一些额外处理
// 1.中间件可以增添公共的逻辑和方法、属性
// 2.中间件可以决定是否向下执行 （鉴权）
// 3.中间件可以记录日志，打印日志。。。（中间的过程，提前处理参数，提前校验）

// 和cookie中的path一样就是只要以这个路径开头就能匹配到 / 就是默认值

app.use(
  function (req, res, next) {
    console.log("middlware 1");
    // next();
  },
  function (req, res, next) {
    console.log("middlware 2");
    next("a");
  }
);

app.use(function (req, res, next) {
  console.log("middlware 3");
  next();
});
app.get("/user", function (req, res, next) {
  console.log(1, req.a);
  next();
  // res.end("user");
});
// 静态服务中间件 （中间件在路由后面是可以的，相当于有些逻辑我们可以在路由没有匹配后要执行）
// 一般情况中间件都在路由上面
app.use((err, req, res, next) => {
  //  错误处理中间件必须有4个参数，第一个是错误值
  res.end(err);
});
app.listen(3000);

// koa-router
